#ifndef CUFFTDX_FFT_14_FP32_FWD_PTX_HPP
#define CUFFTDX_FFT_14_FP32_FWD_PTX_HPP



template<> __forceinline__ __device__ void cufftdx_private_function<1, float, 1>(cufftdx::detail::complex<float> *rmem, unsigned smem){

asm volatile (R"({
.reg .f32 f<291>;
.reg .b64 rd<2>;
add.f32 f57, %33, %60;
add.f32 f58, %28, f57;
add.f32 f59, %38, %54;
add.f32 f60, f59, f58;
add.f32 f61, %44, %49;
add.f32 f62, f61, f60;
add.f32 f63, %35, %61;
add.f32 f64, %29, f63;
add.f32 f65, %40, %56;
add.f32 f66, f65, f64;
add.f32 f67, %45, %51;
add.f32 f68, f67, f66;
fma.rn.f32 f69, f57, 0f3F1F9D07, %28;
mul.f32 f70, f59, 0f3E63DC87;
sub.f32 f71, f69, f70;
mul.f32 f72, f61, 0f3F66A5E5;
sub.f32 f73, f71, f72;
sub.f32 f74, %35, %61;
mul.f32 f75, f74, 0f3F48261C;
sub.f32 f76, %40, %56;
mul.f32 f77, f76, 0fBF7994E0;
sub.f32 f78, f77, f75;
sub.f32 f79, %45, %51;
mul.f32 f80, f79, 0f3EDE2602;
sub.f32 f81, f78, f80;
sub.f32 f82, f73, f81;
add.f32 f83, f81, f73;
mul.f32 f84, f57, 0f3E63DC87;
sub.f32 f85, %28, f84;
mul.f32 f86, f59, 0f3F66A5E5;
sub.f32 f87, f85, f86;
fma.rn.f32 f88, f61, 0f3F1F9D07, f87;
mul.f32 f89, f74, 0f3F7994E0;
mul.f32 f90, f76, 0f3EDE2602;
sub.f32 f91, f90, f89;
fma.rn.f32 f92, f79, 0f3F48261C, f91;
sub.f32 f93, f88, f92;
add.f32 f94, f92, f88;
mul.f32 f95, f57, 0f3F66A5E5;
sub.f32 f96, %28, f95;
fma.rn.f32 f97, f59, 0f3F1F9D07, f96;
mul.f32 f98, f61, 0f3E63DC87;
sub.f32 f99, f97, f98;
mul.f32 f100, f74, 0f3EDE2602;
mul.f32 f101, f76, 0f3F48261C;
sub.f32 f102, f101, f100;
mul.f32 f103, f79, 0f3F7994E0;
sub.f32 f104, f102, f103;
sub.f32 f105, f99, f104;
add.f32 f106, f104, f99;
fma.rn.f32 f107, f63, 0f3F1F9D07, %29;
mul.f32 f108, f65, 0f3E63DC87;
sub.f32 f109, f107, f108;
mul.f32 f110, f67, 0f3F66A5E5;
sub.f32 f111, f109, f110;
sub.f32 f112, %33, %60;
mul.f32 f113, f112, 0f3F48261C;
sub.f32 f114, %38, %54;
mul.f32 f115, f114, 0fBF7994E0;
sub.f32 f116, f115, f113;
sub.f32 f117, %44, %49;
mul.f32 f118, f117, 0f3EDE2602;
sub.f32 f119, f116, f118;
add.f32 f120, f119, f111;
sub.f32 f121, f111, f119;
mul.f32 f122, f63, 0f3E63DC87;
sub.f32 f123, %29, f122;
mul.f32 f124, f65, 0f3F66A5E5;
sub.f32 f125, f123, f124;
fma.rn.f32 f126, f67, 0f3F1F9D07, f125;
mul.f32 f127, f112, 0f3F7994E0;
mul.f32 f128, f114, 0f3EDE2602;
sub.f32 f129, f128, f127;
fma.rn.f32 f130, f117, 0f3F48261C, f129;
add.f32 f131, f130, f126;
sub.f32 f132, f126, f130;
mul.f32 f133, f63, 0f3F66A5E5;
sub.f32 f134, %29, f133;
fma.rn.f32 f135, f65, 0f3F1F9D07, f134;
mul.f32 f136, f67, 0f3E63DC87;
sub.f32 f137, f135, f136;
mul.f32 f138, f112, 0f3EDE2602;
mul.f32 f139, f114, 0f3F48261C;
sub.f32 f140, f139, f138;
mul.f32 f141, f117, 0f3F7994E0;
sub.f32 f142, f140, f141;
add.f32 f143, f142, f137;
sub.f32 f144, f137, f142;
add.f32 f145, %36, %62;
add.f32 f146, %30, f145;
add.f32 f147, %41, %57;
add.f32 f148, f147, f146;
add.f32 f149, %46, %52;
add.f32 f150, f149, f148;
add.f32 f151, %37, %63;
add.f32 f152, %32, f151;
add.f32 f153, %43, %59;
add.f32 f154, f153, f152;
add.f32 f155, %48, %53;
add.f32 f156, f155, f154;
fma.rn.f32 f157, f145, 0f3F1F9D07, %30;
mul.f32 f158, f147, 0f3E63DC87;
sub.f32 f159, f157, f158;
mul.f32 f160, f149, 0f3F66A5E5;
sub.f32 f161, f159, f160;
sub.f32 f162, %37, %63;
mul.f32 f163, f162, 0f3F48261C;
sub.f32 f164, %43, %59;
mul.f32 f165, f164, 0fBF7994E0;
sub.f32 f166, f165, f163;
sub.f32 f167, %48, %53;
mul.f32 f168, f167, 0f3EDE2602;
sub.f32 f169, f166, f168;
sub.f32 f170, f161, f169;
add.f32 f171, f169, f161;
mul.f32 f172, f145, 0f3E63DC87;
sub.f32 f173, %30, f172;
mul.f32 f174, f147, 0f3F66A5E5;
sub.f32 f175, f173, f174;
fma.rn.f32 f176, f149, 0f3F1F9D07, f175;
mul.f32 f177, f162, 0f3F7994E0;
mul.f32 f178, f164, 0f3EDE2602;
sub.f32 f179, f178, f177;
fma.rn.f32 f180, f167, 0f3F48261C, f179;
sub.f32 f181, f176, f180;
add.f32 f182, f180, f176;
mul.f32 f183, f145, 0f3F66A5E5;
sub.f32 f184, %30, f183;
fma.rn.f32 f185, f147, 0f3F1F9D07, f184;
mul.f32 f186, f149, 0f3E63DC87;
sub.f32 f187, f185, f186;
mul.f32 f188, f162, 0f3EDE2602;
mul.f32 f189, f164, 0f3F48261C;
sub.f32 f190, f189, f188;
mul.f32 f191, f167, 0f3F7994E0;
sub.f32 f192, f190, f191;
sub.f32 f193, f187, f192;
add.f32 f194, f192, f187;
fma.rn.f32 f195, f151, 0f3F1F9D07, %32;
mul.f32 f196, f153, 0f3E63DC87;
sub.f32 f197, f195, f196;
mul.f32 f198, f155, 0f3F66A5E5;
sub.f32 f199, f197, f198;
sub.f32 f200, %36, %62;
mul.f32 f201, f200, 0f3F48261C;
sub.f32 f202, %41, %57;
mul.f32 f203, f202, 0fBF7994E0;
sub.f32 f204, f203, f201;
sub.f32 f205, %46, %52;
mul.f32 f206, f205, 0f3EDE2602;
sub.f32 f207, f204, f206;
add.f32 f208, f207, f199;
sub.f32 f209, f199, f207;
mul.f32 f210, f151, 0f3E63DC87;
sub.f32 f211, %32, f210;
mul.f32 f212, f153, 0f3F66A5E5;
sub.f32 f213, f211, f212;
fma.rn.f32 f214, f155, 0f3F1F9D07, f213;
mul.f32 f215, f200, 0f3F7994E0;
mul.f32 f216, f202, 0f3EDE2602;
sub.f32 f217, f216, f215;
fma.rn.f32 f218, f205, 0f3F48261C, f217;
add.f32 f219, f218, f214;
sub.f32 f220, f214, f218;
mul.f32 f221, f151, 0f3F66A5E5;
sub.f32 f222, %32, f221;
fma.rn.f32 f223, f153, 0f3F1F9D07, f222;
mul.f32 f224, f155, 0f3E63DC87;
sub.f32 f225, f223, f224;
mul.f32 f226, f200, 0f3EDE2602;
mul.f32 f227, f202, 0f3F48261C;
sub.f32 f228, f227, f226;
mul.f32 f229, f205, 0f3F7994E0;
sub.f32 f230, f228, f229;
add.f32 f231, f230, f225;
sub.f32 f232, f225, f230;
mul.f32 f233, f170, 0f3F66A5E5;
mul.f32 f234, f208, 0fBEDE2602;
sub.f32 f235, f233, f234;
mul.f32 f236, f208, 0f3F66A5E5;
fma.rn.f32 f237, f170, 0fBEDE2602, f236;
mul.f32 f238, f181, 0f3F1F9D07;
mul.f32 f239, f219, 0fBF48261C;
sub.f32 f240, f238, f239;
mul.f32 f241, f219, 0f3F1F9D07;
fma.rn.f32 f242, f181, 0fBF48261C, f241;
mul.f32 f243, f193, 0f3E63DC87;
mul.f32 f244, f231, 0fBF7994E0;
sub.f32 f245, f243, f244;
mul.f32 f246, f231, 0f3E63DC87;
fma.rn.f32 f247, f193, 0fBF7994E0, f246;
mul.f32 f248, f194, 0fBE63DC87;
mul.f32 f249, f232, 0fBF7994E0;
sub.f32 f250, f248, f249;
mul.f32 f251, f232, 0fBE63DC87;
fma.rn.f32 f252, f194, 0fBF7994E0, f251;
mul.f32 f253, f182, 0fBF1F9D07;
mul.f32 f254, f220, 0fBF48261C;
sub.f32 f255, f253, f254;
mul.f32 f256, f220, 0fBF1F9D07;
fma.rn.f32 f257, f182, 0fBF48261C, f256;
mul.f32 f258, f171, 0fBF66A5E5;
mul.f32 f259, f209, 0fBEDE2602;
sub.f32 f260, f258, f259;
mul.f32 f261, f209, 0fBF66A5E5;
fma.rn.f32 f262, f171, 0fBEDE2602, f261;
add.f32 %1, f68, f156;
add.f32 %0, f62, f150;
add.f32 %3, f120, f237;
add.f32 %2, f82, f235;
add.f32 %5, f131, f242;
add.f32 %4, f93, f240;
add.f32 %7, f143, f247;
add.f32 %6, f105, f245;
add.f32 %9, f144, f252;
add.f32 %8, f106, f250;
add.f32 %11, f132, f257;
add.f32 %10, f94, f255;
add.f32 %13, f121, f262;
add.f32 %12, f83, f260;
sub.f32 %15, f68, f156;
sub.f32 %14, f62, f150;
sub.f32 %17, f120, f237;
sub.f32 %16, f82, f235;
sub.f32 %19, f131, f242;
sub.f32 %18, f93, f240;
sub.f32 %21, f143, f247;
sub.f32 %20, f105, f245;
sub.f32 %23, f144, f252;
sub.f32 %22, f106, f250;
sub.f32 %25, f132, f257;
sub.f32 %24, f94, f255;
sub.f32 %27, f121, f262;
sub.f32 %26, f83, f260;
})"
     : "=f"(rmem[0].x), "=f"(rmem[0].y), "=f"(rmem[1].x), "=f"(rmem[1].y), "=f"(rmem[2].x), "=f"(rmem[2].y), "=f"(rmem[3].x), "=f"(rmem[3].y), "=f"(rmem[4].x), "=f"(rmem[4].y), "=f"(rmem[5].x), "=f"(rmem[5].y), "=f"(rmem[6].x), "=f"(rmem[6].y), "=f"(rmem[7].x), "=f"(rmem[7].y), "=f"(rmem[8].x), "=f"(rmem[8].y), "=f"(rmem[9].x), "=f"(rmem[9].y), "=f"(rmem[10].x), "=f"(rmem[10].y), "=f"(rmem[11].x), "=f"(rmem[11].y), "=f"(rmem[12].x), "=f"(rmem[12].y), "=f"(rmem[13].x), "=f"(rmem[13].y): "f"(rmem[0].x), "f"(rmem[0].y), "f"(rmem[1].x), "f"(rmem[1].y), "f"(rmem[1].y), "f"(rmem[2].x), "f"(rmem[2].y), "f"(rmem[2].y), "f"(rmem[3].x), "f"(rmem[3].y), "f"(rmem[4].x), "f"(rmem[4].y), "f"(rmem[4].y), "f"(rmem[5].x), "f"(rmem[5].y), "f"(rmem[5].y), "f"(rmem[6].x), "f"(rmem[6].y), "f"(rmem[7].x), "f"(rmem[7].y), "f"(rmem[7].y), "f"(rmem[8].x), "f"(rmem[8].y), "f"(rmem[8].y), "f"(rmem[9].x), "f"(rmem[9].y), "f"(rmem[10].x), "f"(rmem[10].y), "f"(rmem[10].y), "f"(rmem[11].x), "f"(rmem[11].y), "f"(rmem[11].y), "f"(rmem[12].x), "f"(rmem[12].y), "f"(rmem[13].x), "f"(rmem[13].y));
};


#endif
